﻿using System;

/* 
 * 创建人：Kewin
 * 
 * 时间：2010.6-2010.9
 * 
 * 说明：
 * 
 * 
 * 修改说明：
 * 
 * 
 */


namespace ConsoleTest.ChapterEleven
{
    public class Event
    {
        /*事件概览
         * C#允许对象提供事件，事件的就是委托。
         * 编译器在会根据事件生成具有相同签名列表的委托（私有），在类的内部提供引发事件的方法
         * 一般命名为OnEventName
         * 当事件引发时会查看事件订阅者（即事件对应的委托的列表），并执行委托方法。委托方法由
         * 订阅者提供。
         * 
         * 在.NET系统中，一般事件都以XXEventHandler命名，事件的参数包括两个
         * 第一个参数为object类型，指向事件所在的对象
         * 第二个参数一般命名为XXEventArgs，引用事件的参数（该参数一般继承自System.EventArgs类）
         * 且事件没有返回值。
         * 
         *event虽然类似于委托，但是event关键字指定的事件的可见性是类的内部。
         *类的事件仅仅能够在类的内部引发（调用事件委托），不能够在类的外部包括类的内嵌类型中引发。
         */

        /*异步事件
         *  当一个事件被引发时，订阅事件的方法（即类的对象的事件所关联的方法）会在引发事件的线程上执行。
         *  订阅者的方法可能需要很长时间来执行或者订阅者的方法会产生异常从而回到引发事件的方法中，这些问题
         *  的出现提示我们引发事件的方法与订阅者方法应当是低耦合的。
         *  
         */
    }
}